<page-header> </page-header>

<nz-card [nzBordered]="false">
    <form nz-form [nzLayout]="'inline'" (ngSubmit)="onSearch()" class="search__form">
        <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 24, lg: 24, xl: 48, xxl: 48 }">
            <div nz-col nzMd="10" nzSm="24">
                <nz-form-item>
                    <nz-form-label nzFor="appName">{{ 'mxk.apps.name' | i18n }}</nz-form-label>
                    <nz-form-control>
                        <input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }"
                            name="appName" placeholder="" id="appName" />
                    </nz-form-control>
                </nz-form-item>
            </div>
            <div nz-col nzMd="10" nzSm="24">
                <nz-form-item>
                    <nz-form-label nzFor="protocol">{{ 'mxk.apps.protocol' | i18n }}</nz-form-label>
                    <nz-form-control>
                        <nz-select [(ngModel)]="query.params.protocol" [ngModelOptions]="{ standalone: true }">
                            <nz-option nzValue="" nzLabel="ALL"></nz-option>
                            <nz-option nzValue="OAuth_v2.0" nzLabel="OAuth v2.0"></nz-option>
                            <nz-option nzValue="OAuth_v2.1" nzLabel="OAuth v2.1"></nz-option>
                            <nz-option nzValue="OpenID_Connect_v1.0" nzLabel="OpenID Connect v1.0"></nz-option>
                            <nz-option nzValue="SAML_v2.0" nzLabel="SAML v2.0"> </nz-option>
                            <nz-option nzValue="CAS" nzLabel="CAS"></nz-option>
                            <nz-option nzValue="JWT" nzLabel="JWT"></nz-option>
                            <nz-option nzValue="Token_Based" nzLabel="Token Based"></nz-option>
                            <nz-option nzValue="Form_Based" nzLabel="Form Based"></nz-option>
                            <nz-option nzValue="Extend_API" nzLabel="Extend API"></nz-option>
                            <nz-option nzValue="Basic" nzLabel="Basic"></nz-option>
                        </nz-select>
                    </nz-form-control>
                </nz-form-item>
            </div>
            <div nz-col [nzSpan]="query.expandForm ? 24 : 4" [class.text-right]="query.expandForm">
                <nz-form-item>
                    <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="query.submitLoading">{{
                        'mxk.text.query' | i18n }}</button>
                    <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{
                        'mxk.text.reset' | i18n }}</button>
                    <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm"
                        style="display: none">
                        {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button>
                </nz-form-item>
            </div>
        </div>
    </form>
</nz-card>
<nz-card>
    <div nz-col [nzSpan]="24" class="table-list-toolbar">
        <nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger
            [nzData]="query.results.rows" [nzFrontPagination]="false" [nzTotal]="query.results.records"
            [nzPageSizeOptions]="query.params.pageSizeOptions" [nzPageSize]="query.params.pageSize"
            [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading"
            (nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%">
            <thead>
                <tr>
                    <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate"
                        (nzCheckedChange)="onTableAllChecked($event)"></th>

                    <th nzAlign="center">{{ 'mxk.apps.icon' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.text.id' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.apps.name' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.apps.protocol' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.apps.category' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.text.sortIndex' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.text.status' | i18n }}</th>
                    <th nzAlign="center">{{ 'mxk.text.action' | i18n }}</th>
                </tr>
            </thead>
            <tbody>
                <tr *ngFor="let data of query.results.rows">
                    <td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled"
                        (nzCheckedChange)="onTableItemChecked(data.id, $event)"></td>

                    <td nzAlign="center"><img height="30" border="0px" src="{{ data.iconBase64 }}" /></td>
                    <td nzAlign="left"> {{ data.id }} </td>
                    <td nzAlign="left"> {{ data.appName }}</td>
                    <td nzAlign="left"> {{ data.protocol }}</td>
                    <td nzAlign="left">
                        <div *ngIf="data.category == 'none'">{{ 'mxk.apps.category.none' | i18n }}</div>
                        <div *ngIf="data.category == '1011'">{{ 'mxk.apps.category.1011' | i18n }}</div>
                        <div *ngIf="data.category == '1012'">{{ 'mxk.apps.category.1012' | i18n }}</div>
                        <div *ngIf="data.category == '1013'">{{ 'mxk.apps.category.1013' | i18n }}</div>
                        <div *ngIf="data.category == '1014'">{{ 'mxk.apps.category.1014' | i18n }}</div>
                        <div *ngIf="data.category == '1015'">{{ 'mxk.apps.category.1015' | i18n }}</div>
                        <div *ngIf="data.category == '1016'">{{ 'mxk.apps.category.1016' | i18n }}</div>
                        <div *ngIf="data.category == '1017'">{{ 'mxk.apps.category.1017' | i18n }}</div>
                        <div *ngIf="data.category == '1111'">{{ 'mxk.apps.category.1111' | i18n }}</div>
                        <div *ngIf="data.category == '1112'">{{ 'mxk.apps.category.1112' | i18n }}</div>
                        <div *ngIf="data.category == '1113'">{{ 'mxk.apps.category.1113' | i18n }}</div>
                        <div *ngIf="data.category == '1114'">{{ 'mxk.apps.category.1114' | i18n }}</div>
                        <div *ngIf="data.category == '1211'">{{ 'mxk.apps.category.1211' | i18n }}</div>
                        <div *ngIf="data.category == '1212'">{{ 'mxk.apps.category.1212' | i18n }}</div>
                        <div *ngIf="data.category == '1213'">{{ 'mxk.apps.category.1213' | i18n }}</div>
                        <div *ngIf="data.category == '1214'">{{ 'mxk.apps.category.1214' | i18n }}</div>
                        <div *ngIf="data.category == '1215'">{{ 'mxk.apps.category.1215' | i18n }}</div>
                        <div *ngIf="data.category == '1311'">{{ 'mxk.apps.category.1311' | i18n }}</div>
                        <div *ngIf="data.category == '1411'">{{ 'mxk.apps.category.1411' | i18n }}</div>
                        <div *ngIf="data.category == '1511'">{{ 'mxk.apps.category.1511' | i18n }}</div>
                        <div *ngIf="data.category == '1512'">{{ 'mxk.apps.category.1512' | i18n }}</div>
                        <div *ngIf="data.category == '1611'">{{ 'mxk.apps.category.1611' | i18n }}</div>
                        <div *ngIf="data.category == '1711'">{{ 'mxk.apps.category.1711' | i18n }}</div>
                        <div *ngIf="data.category == '1712'">{{ 'mxk.apps.category.1712' | i18n }}</div>
                        <div *ngIf="data.category == '1811'">{{ 'mxk.apps.category.1811' | i18n }}</div>
                        <div *ngIf="data.category == '1812'">{{ 'mxk.apps.category.1812' | i18n }}</div>
                        <div *ngIf="data.category == '1911'">{{ 'mxk.apps.category.1911' | i18n }}</div>
                        <div *ngIf="data.category == '1912'">{{ 'mxk.apps.category.1912' | i18n }}</div>
                    </td>
                    <td nzAlign="left"> {{ data.sortIndex }}</td>
                    <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill"
                            style="color: green"></i></td>
                    <td nzAlign="center" nzBreakWord="false">
                        <button nz-button type="button" (click)="onEditPermission($event, data.id, data.appName)">{{
                            'mxk.apps.permission' | i18n
                            }}</button>
                        <button nz-button type="button" (click)="onEditRoles($event, data.id, data.appName)">{{
                            'mxk.apps.role' | i18n }}</button>
                        <button nz-button type="button" (click)="onEditResource($event, data.id, data.appName)">{{
                            'mxk.apps.resources' | i18n
                            }}</button>
                    </td>
                </tr>
            </tbody>
        </nz-table>
    </div>
</nz-card>